Beyond the 12 Factor App
12 Factor Appという、Herokuが提唱したウェブアプリ設計論がある サマリー
1 One Codebase, One Application
1-app 1-repoで管理し、N-repo 1-Codebaseに集約せよ
2 API First
3 Dependency Management
ライブラリの依存関係は明示的に定めよ
4 Design, Build, Release, Run
パイプラインのステージを4つに分けて独立させよ
permalinkつけて識別させよ
5 Configuration, Credentials, and Code
設定は環境変数に入れよ
6 Logs
ログは外部サーバに集めよ
7 Disposability
かんたんに壊せるようにせよ
自動化かつ高速でterminateできるつくりにせよ
8 Backing Services
アプリが使う各サービスはbackend化せよ
9 Environment Parity
開発環境と本番環境は全く同じ構成にせよ
かつ、その同一性を維持せよ
10 Administrative Processes
サーバーに潜って実行する処理は once or nothing で済むように設計せよ
11 Port Binding
アプリ自身がポートをバインドしてリクエストを待つ、という実装にせよ
12 Stateless Processes
データ、セッション、キャッシュなど状態はアプリが持つな
外部に持たせよ
13 Concurrency
アプリはスケールアウトで増やせるようにせよ
スケールアップではなくて
14 Telemetry
モニタリングせよ
木と森を見よ
観点は事前に定めておけ
Observability
この辺よくわからんsta.icon
15 Authentication and Authorization
認証認可は Zero Trust + RBACを使え